﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Data;
using System.Globalization;
using System.Runtime.Serialization;

namespace DemoReception
{
    public class CRoomStat
    {
        public Int64 iLocId;
        public string iLocation;
        public string iRoomStatCode;
        public string iGuestStatCode;
    }

    public class CHotelRoomCatalog
    {
        public Int64 iTypeId { get; set; }
        public string iTypeName { get; set; }
        public List<CRoomStat> iRooms { get; set; }
    }

    public class CRoomStatusCode
    {
        public const string KAll = "ALL";
        public const string KEmptyClean = "VC";
        public const string KEmptyDirty = "VD";
        public const string KExcept = "OS";
        public const string KSettleClean = "OC";
        public const string KSettleDirty = "OD";
        public const string KLockClean = "OSC";
        public const string KLockDirty = "OSD";
    }

    public class CRoomOperation
    {
        public const string KClean = "clean";
        public const string KDirty = "dirty";
        public const string KCheckIn = "checkin";
        public const string KCheckOut = "checkout";
        public const string KUnKnowLock = "OS";
        public const string KCleanLock = "OSC";
        public const string KDirtyLock = "OSD";
        public const string KUnLock = "unlock";
        public const string KUnLockDirty = "VD";
        public const string KOverStay = "overstay";
        public const string KCancelBooking = "cancelbook";

    }

    public class CGuestStatusCode
    {
        public const string KAll = "ALL";
        public const string KEmpty = "EM";
        public const string KSettle = "EI";
        public const string KToArrive = "EA";
        public const string KToLeave = "ED";
    }

    [DataContract]
    public class CNodeJsResult
    {
        [DataMember(Name ="iRst")]
        public int iResult;
    }

    [DataContract]
    public class CNewItemResult: CNodeJsResult
    {
        [DataMember(Name = "iNewId")]
        public Int64 iNewId;
    }


    [DataContract]
    public class CGetRoomTypeResult: CNodeJsResult
    {
        [DataMember]
        public List<EmRoomType> iTypes;
    }

    [DataContract]
    public class EmRoomType
    {
        [DataMember]
        public Int64 iId;
        [DataMember]
        public string iTypeName;
        [DataMember]
        public double iPrice;
    }

    [DataContract]
    public class CGetHotelsResult : CNodeJsResult
    {
        [DataMember]
        public List<EmHotel> iHotels;
    }

    [DataContract]
    public class EmHotel
    {
        [DataMember]
        public string iCode;
        [DataMember]
        public string iName;
        [DataMember]
        public string iAddr;
    }

    [DataContract]
    public class CGetRoomsResult : CNodeJsResult
    {
        [DataMember]
        public List<EmRoom> iRooms;
    }

    [DataContract]
    public class EmRoom
    {
        [DataMember]
        public Int64 iId;
        [DataMember]
        public string iRoomNo;
        /// <summary>
        /// Type ID
        /// </summary>
        [DataMember]
        public string iRoomType;
        [DataMember]
        public Boolean iHasGuest;
        [DataMember]
        public int iIsDirty;
        [DataMember]
        public Boolean iNoInterrupt;
        [DataMember]
        public Boolean iExcept;
    }

}
